热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

错误率|精确度_论文翻译残差网络

篇首语:本文由编程笔记#小编为大家整理,主要介绍了论文翻译残差网络相关的知识,希望对你有一定的参考价值。4.实验4.1Image

篇首语:本文由编程笔记#小编为大家整理,主要介绍了论文翻译残差网络相关的知识,希望对你有一定的参考价值。



4. 实验

4.1 ImageNet分类数据集

我们使用含有1000个类别的ImageNet 2012分类数据集[35]验证了我们的方法。各模型利用128万张图像训练集进行训练,再利用5万张验证集进行评估。然后测试服务器使用10万张图形测试集测试出最终结果。同时还分别验证了top 1和top 5的错误率。

普通网络。我们首先评估了18层和34层的普通网络。34层的普通网络如图3(中图)所示,18层的普通网络也是类似的形式。表1中给出了网络架构的细节。

表1.ImageNet上的架构,下采样使用conv3_1,conv4_1和conv5_1,步长为2

图4.在ImageNet上的训练过程.细线表示训练误差,粗线表示验证误差.左图为18层和34层普通网络的情况, 右图为18层和34层残差网络的情况.在本图中,残差网络和普通网的参数变量是一样的

表2中的结果表明,较深的34层普通网络的验证集误差要高于较浅的18层普通网络。为揭示其原因,在图4(左图)中我们比较了训练过程中训练误差和验证误差的变化情况。我们观察到了退化问题——在整个的训练过程中,34层的普通网络有着较高的训练误差,尽管18层普通网络是34层普通网络的一部分。

表2.ImageNet上验证集的top 1误差,残差网络和普通网的参数变量是一样的.图4展示了训练过程

我们认为这种优化困难不太像是由于梯度消失造成的。这些普通网络的训练是基于BN[16]的,这确保了前向传播的参数具有非零方差。同时,我们确认了在使用BN时反向传播过程的梯度是正常的。即无论是前向传播还是反向传播过程中的参数都没有出现梯度消失的现象。事实上,34层的普通网络仍然可以取得有竞争力的精度(见表3),这表明这个方法是可行的。我们猜测深度普通网络可能具有较低的收敛速度,而影响了训练误差的减小。这种优化困难的原因在未来还会进一步探究。

表3.ImageNet上的验证集误差. VGG-16 基于我们的测试。 ResNet-50/101/152 属于选项 B,仅使用投影来增加维度

残差网络。现在我们来验证18层和34层的残差网络。除了在每对3×3的过滤器间增加了捷径连接(图3(右图)),残差网络的基本结构和上述的普通网络是相同的。在第一个对比中(表2和图4(右图)),我们对所有捷径使用恒等映射,使用零填充来增加维度(选项 A)。 因此,与同样的普通网络相比,残差网络没有额外的参数。

对表2和图4,我们主要进行了3个观察结果。首先,在使用残差学习方法时情况发生了好转——34层的残差网络的效果优于18层的残差网络(提高了约2.8%)。更重要的是,34层的残差网络表现出较低的训练误差,而且这一现象也在验证集中有着体现。这表明退化问题在这种设置中得到了较好的解决,而且我们在增加网络深度的过程中获得更高的准确率。

表4. ImageNet 验证集上单模型结果的错误率 (%)

其二,相对于普通网络,34层的残差网络降低了约3.5%的top1 误差(见表2),这得益于训练误差的降低(对比图4(右图)和图4(左图))。这个对比证实了残差学习对于深度学习系统是有效的。

表5.集合的错误率 (%).在ImageNet的测试集上的top-5误差,由测试服务器得出.

最后,我们认为18层的普通网络和残差网络的精确度是接近的(见表2),然而18层的残差网路的收敛速度更快些(对比图4中的右图和左图) 。当网络不是“太深”时(这里是18层),现有的SGD求解方法仍然可以在普通网络上得到一个较好的结果。在这种情况下,ResNet 在早期提供更快的收敛来简化了优化的过程。

identity shortcut和projection shortcut的对比。我们已经证明无参数的identity shortcut有助于训练。接下来,接下来我们研究projection shortcut(Eqn.(2))。在表3中我们比较了三个方案: (A) 零填充捷径用于增加维度,并且所有捷径都是无参数的(与表2和图4右相同);(B) projection shortcut用于增加维度,以及其他捷径是identity shortcut;(C ) 所有的捷径都是projection shortcut。

图5. ImageNet的更深的残差函数F。左:ResNet-34的构建块(在56×56特征图上)如图3所示。右图:ResNet-50/101/152的“瓶颈”构建块。

表3显示所有三个选项都比普通选项好得多。B略好于A。我们认为这是因为A中的零填充维度确实没有残差学习。C略好于B,我们将此归因于许多(13个)projection shortcut引入的额外参数。但是A/B/C之间的微小差异表明projection shortcut对于解决退化问题并不是必不可少的。所以我们在本文的其余部分不使用选项 C,以减少内存/时间复杂度和模型大小。identity shortcut对于不增加以下介绍的瓶颈架构的复杂性特别重要。

更深的瓶颈架构。接下来我们描述ImageNet更深层的网络。基于我们可以承受的训练时间考虑,我们将构建块修改为瓶颈设计。对于每个残差函数F,我们使用3层而不是2层的堆栈(图 5)。这三层分别是1×1、3×3和1×1 卷积,其中 1×1 层负责减少然后增加(恢复)维度,使 3×3层成为输入/输出维度较小的瓶颈。图5展示了一个例子,两种设计都具有相似的时间复杂度。

无参数identity shortcut对于瓶颈架构尤为重要。 如果将图 5(右)中的identity shortcut替换为projection shortcut,一个可以发现的现象是时间复杂度和模型大小将会加倍,因为捷径连接到两个高维端。因此,identity shortcut可以为瓶颈设计带来更有效的模型。

50层残差网络:我们将34层网络中的每个2层块替换为3层瓶颈块,从而得到50层残差网络(表 1)。我们使用B方案来增加维度。这个模型有38亿次 FLOPs。
101层和152层的残差网络:我们通过使用更多的3层块构建101层和152层残差网络(表 1)。值得注意的是,虽然深度显着增加,但152层的残差网络(113亿FLOPs)的复杂度仍然低于VGG-16/19网络(15.3/196亿FLOPs)。

50/101/152层的残差网络比34层的残差网络有着更高的精确度(表3和表4)。我们没有观察到退化问题,于是从显著增加的深度中得到了更高的精确度提升。所有评估指标都反映了增加深度的好处(表3和表4)。

与最先进方法的比较。在表4中,我们与之前的最佳单模型运行的结果进行了比较。我们34层的残差网络已经具有了非常有竞争力的精确度。我们的152层残差网络的单模型top-5验证误差为4.49%。这个单模型的结果优于所有以前的集成结果(表5)。我们将六个不同深度的模型组合成一个整体(提交时只有两个152层的模型)。这使得测试集上的top-5误差达到了3.57%(表5)。这个方法在ILSVRC 2015中取得了第一名的成绩。


4.2. CIFAR-10 和分析

我们使用CIFAR-10数据集[20]进行了更多研究,该数据集由包含10分类的 50k个训练图像和10k个测试图像组成。我们进行了在训练集上训练并在测试集上进行评估的实验。我们的重点是超深网络的表现,而不是最先进的方法,因此我们有意使用下文的简单架构。

普通/残差架构遵循图 3(中/右)中的形式。网络输入是平均像素为32×32大小的图像。第一层是3×3的卷积层。然后我们在大小为32,16,8的特征图上分别使用6n层和3×3卷积,每个特征图大小有2n层。过滤器的数量分别为 16, 32, 64。子采样通过步长为2的卷积执行。网络以全局平均池化、10路全连接层和softmax结束。总共有6n+2个堆叠的加权层。下表总结了架构:

当使用捷径时,它们连接到成对的3×3层(总共 3n 个捷径)。 在这个数据集上,我们都使用identity shortcuts(即选项 A),因此我们的残差模型具有与普通模型完全相同的深度、宽度和参数数量。

我们使用0.0001的权重衰减和0.9的动量,并采用未dropout的方式对[12]和BN [16]中的权重初始化。这些模型在两个GPU上以最小为128的批次进行训练。我们从学习率为0.1的值开始,在32k和48k次迭代时将其除以10,并在 64k次迭代后终止训练,这取决于45k/5k训练/验证拆分。我们遵循[24]中的简单数据增强进行训练:每个边填充4个像素,并从填充图像或其水平翻转中进行随机32×32裁剪。为了测试,我们只评估原始的32×32 图像。

图5. ImageNet的更深的残差函数F。左:ResNet-34的构建块(在56×56特征图上)如图3所示。右图:ResNet-50/101/152的“瓶颈”构建块。

我们比较n = 3, 5, 7, 9,得到20、32、44和56层网络。图6(左)显示了普通网络的行为。当普通网络的深度增加,并且在更深时会表现出更高的训练误差。这种现象同样类似出现在ImageNet(图 4,左)和MNIST(参见 [41])上,表明这种优化的困难是一个常见的问题。

图 6. CIFAR-10训练示意图。虚线表示训练误差,粗线表示测试误差。左:普通网络。plain-110 的误差高于60% 不显示。中间:ResNets。右图:110层和1202层的ResNet。

图6显示了残差网络的行为。同样与ImageNet案例(图 4,右)类似,我们的残差网络克服了优化的困难,并在深度增加时提高了精确率。

我们进一步探索n = 18时的110层残差网络。在这种情况下,我们发现当0初始学习率为0.1,由于学习率太大而无法正常收敛。所以我们使用学习率0.01来进行学习率预热,直到训练误差低于80%(大约400次迭代),然后再回到 学习率0.1继续训练。在其余的训练完成之前。这个110层的网络收敛得很好(图 6,中间)。它的参数少于其他深层和浅层网络,例如FitNet [34]和 Highway [41](表 6)这些优的结果(6.43%,表 6)。


图 7. CIFAR-10层响应的标准偏差(std)。层响应是每个3×3的输出层,在BN之后和非线性之前。顶部:图层以其原始顺序显示。底部:层响应按降序排列。

层响应分析。图7显示了层响应的标准偏差 (std)。层响应是每个3×3层的输出,在BN之后和其他非线性(ReLU/加法)之前。对于残差网络,该分析揭示了残差函数的响应强度。图7显示,残差网络的响应通常比普通的响应小。这些结果支持我们的基本设想(第 3.1 节),即残差函数可能通常比非残差函数更接近于零。我们还注意到,更深的残差网络的响应幅度更小,如图 7 中ResNet-20、56和110之间的比较所展现的那样。当层数更多时,残差网络的单个层往往对信号的修改更少。

探索超过1000层的网络。我们探索了一个超过1000层的深层模型。我们将n &#61; 200设置为1202层的网络&#xff0c;该网络的训练如上所述。我们的方法没有遇到优化困难&#xff0c;这个超过1000层的网络能够实现训练误差<0.1%&#xff08;图 6&#xff0c;右&#xff09;。它的测试误差也相当好&#xff08;7.93%&#xff0c;表6&#xff09;。


表 7. 使用基线Faster R-CNN在PASCAL VOC 2007/2012测试集上的目标检测mAP (%)。更全面的结果另见附录。

但是在这种激进的深层模型仍然存在一些未解决的问题。这个1202层的网络的测试结果比我们的110层网络差&#xff0c;尽管两者都有相似的训练误差。我们认为这是因为过拟合。对于这个小数据集&#xff0c;1202层的网络可能没必要这么大&#xff08;19.4M&#xff09;。我们采用了诸如maxout [9]或dropout [13]之类的强正则化方法来在该数据集上获得最佳结果 ([9, 25, 24, 34])。在本文中&#xff0c;我们不使用maxout或者dropout&#xff0c;只是通过深度和简要架构简单地施加正则化&#xff0c;以此减少对优化困难的关注。但是使用更强的正则化方法可能会改善预测的结果&#xff0c;我们将在未来研究。

表 8. 使用基线 Faster R-CNN在COCO验证集上的目标检测mAP (%)。更全面的结果另见附录。


4.3. 在PASCAL和MS COCO上使用目标检测

我们的方法在其他识别任务上具有良好的泛化性能。表7和表8显示了PASCAL VOC 2007和2012 [5]和COCO [26]上的目标检测基线结果。我们采用 Faster R-CNN [32]作为检测方法。在这里&#xff0c;我们使用ResNet-101替换VGG-16 [40]来优化模型。使用两种模型的检测实现&#xff08;见附录&#xff09;是相同的&#xff0c;因此训练的结果只能归因于更好的网络。更值得注意的是&#xff0c;在具有挑战性的COCO数据集上&#xff0c;我们获得了COCO的标准度量 (mAP&#64;[.5,.95]) 6.0%的增长&#xff0c;这是28%的相对提升。这种提升完全是由于学习成果的表示。

基于深度残差网络&#xff0c;我们在ILSVRC & COCO 2015比赛的多个赛道中获得第一名&#xff1a;ImageNet检测、ImageNet定位、COCO检测和COCO分割。详细信息在附录中。


推荐阅读
  • 深入解析轻量级数据库 SQL Server Express LocalDB
    本文详细介绍了 SQL Server Express LocalDB,这是一种轻量级的本地 T-SQL 数据库解决方案,特别适合开发环境使用。文章还探讨了 LocalDB 与其他轻量级数据库的对比,并提供了安装和连接 LocalDB 的步骤。 ... [详细]
  • 本文详细解析 Skynet 的启动流程,包括配置文件的读取、环境变量的设置、主要线程的启动(如 timer、socket、monitor 和 worker 线程),以及消息队列的实现机制。 ... [详细]
  • 本文详细记录了一位Java程序员在Lazada的面试经历,涵盖同步机制、JVM调优、Redis应用、线程池配置、Spring框架特性等多个技术点,以及高级面试中的设计问题和解决方案。 ... [详细]
  • 深入解析C++ Atomic编程中的内存顺序
    在多线程环境中,为了防止多个线程同时修改同一数据导致的竞争条件,通常会使用内核级同步对象,如事件、互斥锁和信号量等。然而,这些方法往往伴随着高昂的上下文切换成本。本文将探讨如何利用C++11中的原子操作和内存顺序来优化多线程编程,减少不必要的开销。 ... [详细]
  • 本文介绍了一个基本的同步Socket程序,演示了如何实现客户端与服务器之间的简单消息传递。此外,文章还概述了Socket的基本工作流程,并计划在未来探讨同步与异步Socket的区别。 ... [详细]
  • RabbitMQ 核心组件解析
    本文详细介绍了RabbitMQ的核心概念,包括其基本原理、应用场景及关键组件,如消息、生产者、消费者、信道、交换机、路由键和虚拟主机等。 ... [详细]
  • 本文介绍了基于Java的在线办公工作流系统的毕业设计方案,涵盖了MyBatis框架的应用、源代码分析、调试与部署流程、数据库设计以及相关论文撰写指导。 ... [详细]
  • iOS 小组件开发指南
    本文详细介绍了iOS小部件(Widget)的开发流程,从环境搭建、证书配置到业务逻辑实现,提供了一系列实用的技术指导与代码示例。 ... [详细]
  • Hadoop集群搭建:实现SSH无密码登录
    本文介绍了如何在CentOS 7 64位操作系统环境下配置Hadoop集群中的SSH无密码登录,包括环境准备、用户创建、密钥生成及配置等步骤。 ... [详细]
  • 本文档提供了首次周测的答案解析,涵盖特殊符号、命令作用、路径说明以及实战练习等内容。 ... [详细]
  • 解决远程桌面连接时的身份验证错误问题
    本文介绍了如何解决在尝试远程访问服务器时遇到的身份验证错误,特别是当系统提示‘要求的函数不受支持’时的具体解决步骤。通过调整Windows注册表设置,您可以轻松解决这一常见问题。 ... [详细]
  • 在日常运维中,频繁地对多台Linux服务器进行用户管理是一项耗时的任务。为了提高效率,可以通过编写Expect脚本来实现远程自动化操作,从而简化这一过程。 ... [详细]
  • 深度解析:用友云Pontus限流服务提升系统稳定性
    本文深入探讨了用友云Pontus限流服务的技术细节及其在提高系统稳定性方面的作用,特别是在面对突发流量时的保护机制。 ... [详细]
  • 本文深入探讨了领域驱动设计(DDD)中的聚合概念及其在事件溯源架构中的应用。聚合是一组紧密相关的类,这些类作为一个整体运作,形成一个有明确边界的组织。只有通过聚合根才能与聚合内的对象进行交互。 ... [详细]
  • 本文将详细介绍如何配置并整合MVP架构、Retrofit网络请求库、Dagger2依赖注入框架以及RxAndroid响应式编程库,构建高效、模块化的Android应用。 ... [详细]
author-avatar
小白_king
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有